package com.xm.util;

import java.util.Random;

/**
 * 随机生成兑换码工具类
 * @author 康文程
 * @date 2023-12-7 下午 05:08
 */
public class ExchangeCodeGeneratorUtil {
    private static final String PREFIX = "xiaomi-";

    /**
     * 随机生成兑换码
     * @return 返回String
     */
    public static String generateExchangeCode() {
        //初始化内容PREFIX
        StringBuilder codeBuilder = new StringBuilder(PREFIX);
        Random random = new Random();
        int group = 3;
        int piece = 5;
        // 生成三组 5 位随机字符（包括大小写字母）
        for (int i = 0; i < group; i++) {
            for (int j = 0; j < piece; j++) {
                int ascii = random.nextInt(26 * 2);
                // 生成 0-51 的随机数
                char c = (char) ('a' + ascii % 26);
                // 将前 26 个数映射为小写字母
                if (ascii >= 26) {
                    // 剩下的 26 个数映射为大写字母
                    c = (char) ('A' + ascii % 26);
                }
                codeBuilder.append(c);
            }
            if (i < 2) {
                codeBuilder.append("-");
            }
        }

        return codeBuilder.toString();
    }

    /**
     * 使用方法
     * @param args 数组
     */
    public static void main(String[] args) {
        String code = generateExchangeCode();
        System.out.println("Generated Exchange Code: " + code);
    }
}
